home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-08-30 | 11.0 KB | [TEXT/MMCC] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| MS-DOS Code Page Info (other/dosCodePage)
| ext
| Unsupported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue Aug 30 11:26:11 1994, modified Tue Aug 30 11:26:11 1994, creator 'MMCC', type ASCII, 10619 bytes "CNameIndex.cp" , at 0x29fb 494 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MMCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0d 43 4e 61 6d 65 49 | 6e 64 65 78 2e 63 70 00 |..CNameI|ndex.cp.|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 01 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 29 7b 00 | 00 01 ee aa 89 00 13 aa |.....){.|........|
|00000060| 89 00 13 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 6d a9 00 00 |........|....m...|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 20 2a |********|*****. *|
|000000c0| 0d 20 2a 09 43 72 65 61 | 74 65 64 3a 20 53 75 6e |. *.Crea|ted: Sun|
|000000d0| 64 61 79 2c 20 4a 61 6e | 75 61 72 79 20 32 30 2c |day, Jan|uary 20,|
|000000e0| 20 31 39 39 31 20 34 3a | 31 31 3a 30 38 20 50 4d | 1991 4:|11:08 PM|
|000000f0| 0d 20 2a 09 43 4e 61 6d | 65 49 6e 64 65 78 2e 63 |. *.CNam|eIndex.c|
|00000100| 70 0d 20 2a 09 43 2b 2b | 20 63 6c 61 73 73 20 69 |p. *.C++| class i|
|00000110| 6d 70 6c 65 6d 65 6e 74 | 61 74 69 6f 6e 20 66 6f |mplement|ation fo|
|00000120| 72 20 6e 61 6d 65 2d 62 | 61 73 65 64 20 69 6e 64 |r name-b|ased ind|
|00000130| 65 78 20 63 6c 61 73 73 | 0d 20 2a 0d 20 2a 0d 20 |ex class|. *. *. |
|00000140| 2a 09 43 6f 70 79 72 69 | 67 68 74 20 4e 65 6f 6c |*.Copyri|ght Neol|
|00000150| 6f 67 69 63 20 53 79 73 | 74 65 6d 73 20 31 39 39 |ogic Sys|tems 199|
|00000160| 32 2d 31 39 39 34 0d 20 | 2a 09 41 6c 6c 20 72 69 |2-1994. |*.All ri|
|00000170| 67 68 74 73 20 72 65 73 | 65 72 76 65 64 0d 20 2a |ghts res|erved. *|
|00000180| 0d 20 2a 0d 20 2a 20 57 | 69 74 68 69 6e 20 61 20 |. *. * W|ithin a |
|00000190| 63 6c 61 73 73 2c 20 72 | 65 66 65 72 65 6e 63 65 |class, r|eference|
|000001a0| 73 20 74 6f 20 70 65 72 | 6d 61 6e 65 6e 74 20 6f |s to per|manent o|
|000001b0| 62 6a 65 63 74 73 20 61 | 72 65 20 6b 65 70 74 20 |bjects a|re kept |
|000001c0| 69 6e 0d 20 2a 20 61 20 | 73 6f 72 74 65 64 20 6c |in. * a |sorted l|
|000001d0| 69 73 74 20 63 61 6c 6c | 65 64 20 61 6e 20 69 6e |ist call|ed an in|
|000001e0| 64 65 78 2e 20 54 68 65 | 20 64 65 66 61 75 6c 74 |dex. The| default|
|000001f0| 20 73 6f 72 74 69 6e 67 | 20 6f 72 64 65 72 20 69 | sorting| order i|
|00000200| 6e 0d 20 2a 20 61 6e 20 | 69 6e 64 65 78 20 69 73 |n. * an |index is|
|00000210| 20 61 73 63 65 6e 64 69 | 6e 67 20 62 79 20 49 44 | ascendi|ng by ID|
|00000220| 20 76 61 6c 75 65 2c 20 | 68 6f 77 65 76 65 72 20 | value, |however |
|00000230| 6f 74 68 65 72 20 73 6f | 72 74 69 6e 67 0d 20 2a |other so|rting. *|
|00000240| 20 6f 72 64 65 72 73 20 | 61 72 65 20 70 6f 73 73 | orders |are poss|
|00000250| 69 62 6c 65 2e 20 54 68 | 65 20 63 6c 61 73 73 20 |ible. Th|e class |
|00000260| 43 4e 61 6d 65 49 6e 64 | 65 78 20 69 6d 70 6c 65 |CNameInd|ex imple|
|00000270| 6d 65 6e 74 73 20 61 0d | 20 2a 20 73 65 63 6f 6e |ments a.| * secon|
|00000280| 64 61 72 79 20 69 6e 64 | 65 78 20 77 68 69 63 68 |dary ind|ex which|
|00000290| 20 6f 72 67 61 6e 69 7a | 65 73 20 6f 62 6a 65 63 | organiz|es objec|
|000002a0| 74 73 20 69 6e 20 61 73 | 63 65 6e 64 69 6e 67 20 |ts in as|cending |
|000002b0| 6f 72 64 65 72 0d 20 2a | 20 62 79 20 6e 61 6d 65 |order. *| by name|
|000002c0| 2e 0d 20 2a 0d 20 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.. *. **|********|
|000002d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000300| 2a 2f 0d 0d 23 69 66 64 | 65 66 20 71 4e 65 6f 4d |*/..#ifd|ef qNeoM|
|00000310| 61 63 69 6e 74 6f 73 68 | 0d 23 69 6e 63 6c 75 64 |acintosh|.#includ|
|00000320| 65 20 3c 50 61 63 6b 61 | 67 65 73 2e 68 3e 0d 23 |e <Packa|ges.h>.#|
|00000330| 65 6e 64 69 66 0d 23 69 | 6e 63 6c 75 64 65 20 22 |endif.#i|nclude "|
|00000340| 4e 65 6f 54 79 70 65 73 | 2e 68 22 0d 23 69 6e 63 |NeoTypes|.h".#inc|
|00000350| 6c 75 64 65 20 43 4e 65 | 6f 4d 65 74 61 43 6c 61 |lude CNe|oMetaCla|
|00000360| 73 73 48 0d 23 69 6e 63 | 6c 75 64 65 20 43 4e 65 |ssH.#inc|lude CNe|
|00000370| 6f 53 65 6c 65 63 74 48 | 0d 23 69 6e 63 6c 75 64 |oSelectH|.#includ|
|00000380| 65 20 43 4e 65 6f 53 74 | 72 65 61 6d 48 0d 23 69 |e CNeoSt|reamH.#i|
|00000390| 6e 63 6c 75 64 65 20 43 | 4e 65 6f 44 61 74 61 62 |nclude C|NeoDatab|
|000003a0| 61 73 65 48 0d 23 69 6e | 63 6c 75 64 65 20 22 43 |aseH.#in|clude "C|
|000003b0| 4e 61 6d 65 49 6e 64 65 | 78 2e 68 22 0d 23 69 6e |NameInde|x.h".#in|
|000003c0| 63 6c 75 64 65 20 43 4e | 65 6f 43 6c 61 73 73 48 |clude CN|eoClassH|
|000003d0| 0d 23 69 6e 63 6c 75 64 | 65 20 22 43 50 65 72 73 |.#includ|e "CPers|
|000003e0| 6f 6e 2e 68 22 0d 0d 23 | 69 66 6e 64 65 66 20 4e |on.h"..#|ifndef N|
|000003f0| 65 6f 49 6e 68 65 72 69 | 74 65 64 0d 23 64 65 66 |eoInheri|ted.#def|
|00000400| 69 6e 65 20 4e 65 6f 49 | 6e 68 65 72 69 74 65 64 |ine NeoI|nherited|
|00000410| 09 43 4e 65 6f 4e 6f 64 | 65 0d 23 65 6e 64 69 66 |.CNeoNod|e.#endif|
|00000420| 0d 0d 2f 2a 20 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |../* ***|********|
|00000430| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000440| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000460| 2a 2a 2a 2a 2a 2a 2a 20 | 2a 2f 0d 09 09 09 09 09 |******* |*/......|
|00000470| 09 2f 2a 2a 20 49 6e 73 | 74 61 6e 63 65 20 4d 65 |./** Ins|tance Me|
|00000480| 74 68 6f 64 73 20 2a 2a | 2f 0d 2f 2a 20 2a 2a 2a |thods **|/./* ***|
|00000490| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 20 |********|******* |
|000004d0| 2a 2f 0d 0d 23 70 72 61 | 67 6d 61 20 73 65 67 6d |*/..#pra|gma segm|
|000004e0| 65 6e 74 20 4e 65 6f 43 | 72 65 61 74 65 0d 43 4e |ent NeoC|reate.CN|
|000004f0| 61 6d 65 49 6e 64 65 78 | 3a 3a 43 4e 61 6d 65 49 |ameIndex|::CNameI|
|00000500| 6e 64 65 78 28 63 6f 6e | 73 74 20 73 68 6f 72 74 |ndex(con|st short|
|00000510| 20 61 43 6f 75 6e 74 2c | 20 43 4e 65 6f 4e 6f 64 | aCount,| CNeoNod|
|00000520| 65 20 2a 61 50 61 72 65 | 6e 74 2c 20 63 6f 6e 73 |e *aPare|nt, cons|
|00000530| 74 20 4e 65 6f 49 44 20 | 61 49 44 29 0d 09 3a 20 |t NeoID |aID)..: |
|00000540| 43 4e 65 6f 4e 6f 64 65 | 28 61 43 6f 75 6e 74 2c |CNeoNode|(aCount,|
|00000550| 20 54 52 55 45 2c 20 61 | 50 61 72 65 6e 74 29 0d | TRUE, a|Parent).|
|00000560| 7b 0d 09 66 49 44 20 3d | 20 61 49 44 3b 0d 7d 0d |{..fID =| aID;.}.|
|00000570| 0d 2f 2a 0d 20 2a 20 41 | 6c 6c 6f 63 61 74 65 20 |./*. * A|llocate |
|00000580| 61 6e 64 20 69 6e 69 74 | 69 61 6c 69 7a 65 20 61 |and init|ialize a|
|00000590| 20 6e 65 77 20 69 6e 73 | 74 61 6e 63 65 2e 0d 20 | new ins|tance.. |
|000005a0| 2a 2f 0d 23 70 72 61 67 | 6d 61 20 73 65 67 6d 65 |*/.#prag|ma segme|
|000005b0| 6e 74 20 4e 65 6f 43 72 | 65 61 74 65 0d 43 4e 65 |nt NeoCr|eate.CNe|
|000005c0| 6f 50 65 72 73 69 73 74 | 20 2a 43 4e 61 6d 65 49 |oPersist| *CNameI|
|000005d0| 6e 64 65 78 3a 3a 4e 65 | 77 28 76 6f 69 64 29 0d |ndex::Ne|w(void).|
|000005e0| 7b 0d 09 43 4e 61 6d 65 | 49 6e 64 65 78 20 2a 09 |{..CName|Index *.|
|000005f0| 6f 62 6a 65 63 74 3b 0d | 0d 09 6f 62 6a 65 63 74 |object;.|..object|
|00000600| 20 3d 20 6e 65 77 20 43 | 4e 61 6d 65 49 6e 64 65 | = new C|NameInde|
|00000610| 78 28 30 2c 20 6e 69 6c | 2c 20 30 29 3b 0d 0d 09 |x(0, nil|, 0);...|
|00000620| 72 65 74 75 72 6e 20 6f | 62 6a 65 63 74 3b 0d 7d |return o|bject;.}|
|00000630| 0d 0d 2f 2a 0d 20 2a 20 | 52 65 74 75 72 6e 20 74 |../*. * |Return t|
|00000640| 68 65 20 63 6c 61 73 73 | 20 49 44 20 66 6f 72 20 |he class| ID for |
|00000650| 74 68 69 73 20 6b 69 6e | 64 20 6f 66 20 6f 62 6a |this kin|d of obj|
|00000660| 65 63 74 2e 0d 20 2a 2f | 0d 23 70 72 61 67 6d 61 |ect.. */|.#pragma|
|00000670| 20 73 65 67 6d 65 6e 74 | 20 4e 65 6f 49 6e 66 6f | segment| NeoInfo|
|00000680| 0d 4e 65 6f 49 44 20 43 | 4e 61 6d 65 49 6e 64 65 |.NeoID C|NameInde|
|00000690| 78 3a 3a 67 65 74 43 6c | 61 73 73 49 44 28 76 6f |x::getCl|assID(vo|
|000006a0| 69 64 29 20 63 6f 6e 73 | 74 0d 7b 0d 09 72 65 74 |id) cons|t.{..ret|
|000006b0| 75 72 6e 20 6b 4e 61 6d | 65 49 6e 64 65 78 49 44 |urn kNam|eIndexID|
|000006c0| 3b 0d 7d 0d 0d 2f 2a 0d | 20 2a 20 54 68 65 20 67 |;.}../*.| * The g|
|000006d0| 65 74 45 6e 74 72 79 56 | 61 6c 75 65 20 6d 65 74 |etEntryV|alue met|
|000006e0| 68 6f 64 20 63 61 6e 20 | 62 65 20 75 73 65 64 20 |hod can |be used |
|000006f0| 74 6f 20 6f 62 74 61 69 | 6e 20 74 68 65 20 76 61 |to obtai|n the va|
|00000700| 6c 75 65 20 6f 66 20 61 | 20 64 61 74 61 20 6d 65 |lue of a| data me|
|00000710| 6d 62 65 72 20 6f 66 0d | 20 2a 20 74 68 65 20 65 |mber of.| * the e|
|00000720| 6e 74 72 79 20 72 65 66 | 65 72 72 65 64 20 74 6f |ntry ref|erred to|
|00000730| 20 62 79 20 61 49 6e 64 | 65 78 2e 20 54 68 65 20 | by aInd|ex. The |
|00000740| 61 4e 61 6d 65 20 61 72 | 67 75 6d 65 6e 74 20 69 |aName ar|gument i|
|00000750| 73 20 61 20 74 61 67 20 | 77 68 69 63 68 20 69 64 |s a tag |which id|
|00000760| 65 6e 74 69 66 69 65 73 | 0d 20 2a 20 74 68 65 20 |entifies|. * the |
|00000770| 64 61 74 61 20 6d 65 6d | 62 65 72 2c 20 61 6e 64 |data mem|ber, and|
|00000780| 20 61 54 79 70 65 20 72 | 65 66 65 72 73 20 74 6f | aType r|efers to|
|00000790| 20 74 68 65 20 66 6f 72 | 6d 61 74 20 69 6e 20 77 | the for|mat in w|
|000007a0| 68 69 63 68 20 74 68 65 | 20 76 61 6c 75 65 20 69 |hich the| value i|
|000007b0| 73 20 74 6f 20 62 65 0d | 20 2a 20 72 65 74 75 72 |s to be.| * retur|
|000007c0| 6e 65 64 2e 20 46 69 6e | 61 6c 6c 79 2c 20 61 56 |ned. Fin|ally, aV|
|000007d0| 61 6c 75 65 20 69 73 20 | 61 20 70 6f 69 6e 74 65 |alue is |a pointe|
|000007e0| 72 20 74 6f 20 61 20 62 | 75 66 66 65 72 20 69 6e |r to a b|uffer in|
|000007f0| 74 6f 20 77 68 69 63 68 | 20 74 68 65 20 76 61 6c |to which| the val|
|00000800| 75 65 20 73 68 6f 75 6c | 64 0d 20 2a 20 62 65 20 |ue shoul|d. * be |
|00000810| 72 65 74 75 72 6e 65 64 | 2e 0d 20 2a 2f 0d 23 70 |returned|.. */.#p|
|00000820| 72 61 67 6d 61 20 73 65 | 67 6d 65 6e 74 20 4e 65 |ragma se|gment Ne|
|00000830| 6f 53 65 61 72 63 68 0d | 4f 53 45 72 72 20 43 4e |oSearch.|OSErr CN|
|00000840| 61 6d 65 49 6e 64 65 78 | 3a 3a 67 65 74 45 6e 74 |ameIndex|::getEnt|
|00000850| 72 79 56 61 6c 75 65 28 | 63 6f 6e 73 74 20 73 68 |ryValue(|const sh|
|00000860| 6f 72 74 20 61 49 6e 64 | 65 78 2c 20 63 6f 6e 73 |ort aInd|ex, cons|
|00000870| 74 20 4e 65 6f 54 61 67 | 20 61 4e 61 6d 65 2c 20 |t NeoTag| aName, |
|00000880| 63 6f 6e 73 74 20 4e 65 | 6f 54 61 67 20 61 54 79 |const Ne|oTag aTy|
|00000890| 70 65 2c 20 76 6f 69 64 | 20 2a 61 56 61 6c 75 65 |pe, void| *aValue|
|000008a0| 29 0d 7b 0d 09 4f 53 45 | 72 72 09 65 72 72 09 09 |).{..OSE|rr.err..|
|000008b0| 3d 20 6e 6f 45 72 72 3b | 0d 0d 09 4e 65 6f 41 73 |= noErr;|...NeoAs|
|000008c0| 73 65 72 74 28 61 49 6e | 64 65 78 20 3e 3d 20 30 |sert(aIn|dex >= 0|
|000008d0| 20 26 26 20 61 49 6e 64 | 65 78 20 3c 20 66 43 6f | && aInd|ex < fCo|
|000008e0| 75 6e 74 29 3b 0d 09 73 | 77 69 74 63 68 20 28 61 |unt);..s|witch (a|
|000008f0| 4e 61 6d 65 29 20 7b 0d | 09 63 61 73 65 20 70 4e |Name) {.|.case pN|
|00000900| 65 6f 4e 61 6d 65 3a 0d | 09 09 4e 65 6f 41 73 73 |eoName:.|..NeoAss|
|00000910| 65 72 74 28 61 54 79 70 | 65 20 3d 3d 20 6b 4e 65 |ert(aTyp|e == kNe|
|00000920| 6f 4e 61 74 69 76 65 53 | 74 72 69 6e 67 54 79 70 |oNativeS|tringTyp|
|00000930| 65 29 3b 0d 09 09 2a 28 | 43 4e 65 6f 53 74 72 69 |e);...*(|CNeoStri|
|00000940| 6e 67 20 2a 29 61 56 61 | 6c 75 65 20 3d 20 66 45 |ng *)aVa|lue = fE|
|00000950| 6e 74 72 79 5b 61 49 6e | 64 65 78 5d 2e 66 4e 61 |ntry[aIn|dex].fNa|
|00000960| 6d 65 3b 0d 09 09 62 72 | 65 61 6b 3b 0d 0d 09 63 |me;...br|eak;...c|
|00000970| 61 73 65 20 70 4e 65 6f | 49 44 3a 0d 09 09 4e 65 |ase pNeo|ID:...Ne|
|00000980| 6f 41 73 73 65 72 74 28 | 61 54 79 70 65 20 3d 3d |oAssert(|aType ==|
|00000990| 20 6b 4e 65 6f 4c 6f 6e | 67 54 79 70 65 29 3b 0d | kNeoLon|gType);.|
|000009a0| 09 09 2a 28 4e 65 6f 49 | 44 20 2a 29 61 56 61 6c |..*(NeoI|D *)aVal|
|000009b0| 75 65 20 3d 20 66 45 6e | 74 72 79 5b 61 49 6e 64 |ue = fEn|try[aInd|
|000009c0| 65 78 5d 2e 66 49 44 3b | 0d 09 09 62 72 65 61 6b |ex].fID;|...break|
|000009d0| 3b 0d 0d 09 64 65 66 61 | 75 6c 74 3a 0d 09 09 65 |;...defa|ult:...e|
|000009e0| 72 72 20 3d 20 4e 65 6f | 49 6e 68 65 72 69 74 65 |rr = Neo|Inherite|
|000009f0| 64 3a 3a 67 65 74 45 6e | 74 72 79 56 61 6c 75 65 |d::getEn|tryValue|
|00000a00| 28 61 49 6e 64 65 78 2c | 20 61 4e 61 6d 65 2c 20 |(aIndex,| aName, |
|00000a10| 61 54 79 70 65 2c 20 61 | 56 61 6c 75 65 29 3b 0d |aType, a|Value);.|
|00000a20| 09 7d 0d 0d 09 72 65 74 | 75 72 6e 20 65 72 72 3b |.}...ret|urn err;|
|00000a30| 0d 7d 0d 0d 2f 2a 0d 20 | 2a 20 52 65 74 75 72 6e |.}../*. |* Return|
|00000a40| 20 74 68 65 20 73 69 7a | 65 20 6f 66 20 74 68 65 | the siz|e of the|
|00000a50| 20 6f 62 6a 65 63 74 20 | 69 6e 20 6d 65 6d 6f 72 | object |in memor|
|00000a60| 79 2e 0d 20 2a 2f 0d 23 | 70 72 61 67 6d 61 20 73 |y.. */.#|pragma s|
|00000a70| 65 67 6d 65 6e 74 20 4e | 65 6f 49 6e 66 6f 0d 6c |egment N|eoInfo.l|
|00000a80| 6f 6e 67 20 43 4e 61 6d | 65 49 6e 64 65 78 3a 3a |ong CNam|eIndex::|
|00000a90| 67 65 74 4c 65 6e 67 74 | 68 28 76 6f 69 64 29 20 |getLengt|h(void) |
|00000aa0| 63 6f 6e 73 74 0d 7b 0d | 09 72 65 74 75 72 6e 20 |const.{.|.return |
|00000ab0| 73 69 7a 65 6f 66 28 43 | 4e 61 6d 65 49 6e 64 65 |sizeof(C|NameInde|
|00000ac0| 78 29 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 54 68 69 |x);.}../|*. * Thi|
|00000ad0| 73 20 6d 65 74 68 6f 64 | 20 72 65 74 75 72 6e 73 |s method| returns|
|00000ae0| 20 74 68 65 20 61 6d 6f | 75 6e 74 20 6f 66 20 66 | the amo|unt of f|
|00000af0| 69 6c 65 20 73 70 61 63 | 65 20 74 68 65 20 6f 62 |ile spac|e the ob|
|00000b00| 6a 65 63 74 20 6f 63 63 | 75 70 69 65 73 20 69 6e |ject occ|upies in|
|00000b10| 20 74 68 65 20 66 69 6c | 65 2e 20 49 74 0d 20 2a | the fil|e. It. *|
|00000b20| 20 64 69 66 66 65 72 73 | 20 66 72 6f 6d 20 74 68 | differs| from th|
|00000b30| 65 20 67 65 74 4c 65 6e | 67 74 68 20 69 6e 20 74 |e getLen|gth in t|
|00000b40| 68 61 74 20 67 65 74 4c | 65 6e 67 74 68 20 72 65 |hat getL|ength re|
|00000b50| 74 75 72 6e 73 20 74 68 | 65 20 73 69 7a 65 20 6f |turns th|e size o|
|00000b60| 66 20 74 68 65 20 6f 62 | 6a 65 63 74 20 69 6e 0d |f the ob|ject in.|
|00000b70| 20 2a 20 6d 65 6d 6f 72 | 79 2e 0d 20 2a 2f 0d 23 | * memor|y.. */.#|
|00000b80| 70 72 61 67 6d 61 20 73 | 65 67 6d 65 6e 74 20 4e |pragma s|egment N|
|00000b90| 65 6f 49 6e 66 6f 0d 6c | 6f 6e 67 20 43 4e 61 6d |eoInfo.l|ong CNam|
|00000ba0| 65 49 6e 64 65 78 3a 3a | 67 65 74 46 69 6c 65 4c |eIndex::|getFileL|
|00000bb0| 65 6e 67 74 68 28 76 6f | 69 64 29 20 63 6f 6e 73 |ength(vo|id) cons|
|00000bc0| 74 0d 7b 0d 09 72 65 74 | 75 72 6e 20 28 6b 4e 65 |t.{..ret|urn (kNe|
|00000bd0| 6f 4e 6f 64 65 46 69 6c | 65 4c 65 6e 67 74 68 20 |oNodeFil|eLength |
|00000be0| 2b 20 28 73 69 7a 65 6f | 66 28 4e 61 6d 65 49 6e |+ (sizeo|f(NameIn|
|00000bf0| 64 65 78 45 6e 74 72 79 | 29 20 2a 20 6b 4e 65 6f |dexEntry|) * kNeo|
|00000c00| 44 65 66 61 75 6c 74 4e | 6f 64 65 45 6e 74 72 79 |DefaultN|odeEntry|
|00000c10| 43 6f 75 6e 74 29 29 3b | 0d 7d 0d 0d 2f 2a 20 2a |Count));|.}../* *|
|00000c20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c60| 2a 20 2a 2f 0d 09 09 09 | 09 09 09 2f 2a 2a 20 49 |* */....|.../** I|
|00000c70| 2f 4f 20 4d 65 74 68 6f | 64 73 20 2a 2a 2f 0d 2f |/O Metho|ds **/./|
|00000c80| 2a 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |* ******|********|
|00000c90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000ca0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000cb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000cc0| 2a 2a 2a 2a 20 2a 2f 0d | 0d 2f 2a 0d 20 2a 20 54 |**** */.|./*. * T|
|00000cd0| 68 65 20 72 65 61 64 4f | 62 6a 65 63 74 20 6d 65 |he readO|bject me|
|00000ce0| 74 68 6f 64 20 69 73 20 | 75 73 65 64 20 74 6f 20 |thod is |used to |
|00000cf0| 72 65 61 64 20 69 6e 20 | 74 68 65 20 70 65 72 6d |read in |the perm|
|00000d00| 61 6e 65 6e 74 20 64 61 | 74 61 20 6d 65 6d 62 65 |anent da|ta membe|
|00000d10| 72 73 20 6f 66 20 74 68 | 65 0d 20 2a 20 6f 62 6a |rs of th|e. * obj|
|00000d20| 65 63 74 20 66 72 6f 6d | 20 74 68 65 20 67 69 76 |ect from| the giv|
|00000d30| 65 6e 20 73 74 72 65 61 | 6d 2e 20 49 6e 20 6d 6f |en strea|m. In mo|
|00000d40| 73 74 20 63 61 73 65 73 | 2c 20 74 68 69 73 20 6d |st cases|, this m|
|00000d50| 65 74 68 6f 64 20 6f 70 | 65 72 61 74 65 73 20 77 |ethod op|erates w|
|00000d60| 69 74 68 6f 75 74 20 63 | 6f 6e 63 65 72 6e 0d 20 |ithout c|oncern. |
|00000d70| 2a 20 66 6f 72 20 74 68 | 65 20 74 79 70 65 20 6f |* for th|e type o|
|00000d80| 66 20 73 74 72 65 61 6d | 20 74 68 65 20 64 61 74 |f stream| the dat|
|00000d90| 61 20 76 61 6c 75 65 73 | 20 61 72 65 20 63 6f 6d |a values| are com|
|00000da0| 69 6e 67 20 66 72 6f 6d | 2e 20 41 73 20 61 20 72 |ing from|. As a r|
|00000db0| 65 73 75 6c 74 2c 20 74 | 68 69 73 20 6d 65 74 68 |esult, t|his meth|
|00000dc0| 6f 64 0d 20 2a 20 69 73 | 20 63 61 70 61 62 6c 65 |od. * is| capable|
|00000dd0| 20 6f 66 20 72 65 61 64 | 69 6e 67 20 66 72 6f 6d | of read|ing from|
|00000de0| 20 73 75 63 68 20 64 69 | 76 65 72 73 65 20 73 6f | such di|verse so|
|00000df0| 75 72 63 65 73 20 61 73 | 20 74 68 65 20 64 61 74 |urces as| the dat|
|00000e00| 61 20 66 6f 72 6b 20 6f | 66 20 61 20 66 69 6c 65 |a fork o|f a file|
|00000e10| 2c 20 61 0d 20 2a 20 72 | 65 73 6f 75 72 63 65 20 |, a. * r|esource |
|00000e20| 66 6f 72 6b 2c 20 61 6e | 20 41 70 70 6c 65 45 76 |fork, an| AppleEv|
|00000e30| 65 6e 74 2c 20 74 68 65 | 20 63 6c 69 70 62 6f 61 |ent, the| clipboa|
|00000e40| 72 64 2c 20 61 20 6d 65 | 6d 6f 72 79 20 62 6c 6f |rd, a me|mory blo|
|00000e50| 63 6b 2c 20 61 6e 64 20 | 73 6f 20 6f 6e 2e 0d 20 |ck, and |so on.. |
|00000e60| 2a 0d 20 2a 20 54 68 65 | 20 61 54 61 67 20 61 72 |*. * The| aTag ar|
|00000e70| 67 75 6d 65 6e 74 20 69 | 6e 64 69 63 61 74 65 73 |gument i|ndicates|
|00000e80| 20 68 6f 77 20 6d 75 63 | 68 20 69 6e 66 6f 72 6d | how muc|h inform|
|00000e90| 61 74 69 6f 6e 20 74 6f | 20 72 65 61 64 20 66 72 |ation to| read fr|
|00000ea0| 6f 6d 20 74 68 65 20 73 | 74 72 65 61 6d 2e 0d 20 |om the s|tream.. |
|00000eb0| 2a 20 49 74 20 69 73 20 | 73 6f 6d 65 74 69 6d 65 |* It is |sometime|
|00000ec0| 73 20 73 75 66 66 69 63 | 69 65 6e 74 20 74 6f 20 |s suffic|ient to |
|00000ed0| 72 65 61 64 20 69 6e 20 | 61 20 6d 69 6e 69 6d 75 |read in |a minimu|
|00000ee0| 6d 20 61 6d 6f 75 6e 74 | 20 6f 66 20 64 61 74 61 |m amount| of data|
|00000ef0| 20 61 6e 64 20 68 61 76 | 65 20 61 6c 6c 0d 20 2a | and hav|e all. *|
|00000f00| 20 6f 74 68 65 72 20 64 | 61 74 61 20 62 65 20 72 | other d|ata be r|
|00000f10| 65 61 64 20 69 6e 20 6f | 6e 20 64 65 6d 61 6e 64 |ead in o|n demand|
|00000f20| 2e 20 4f 74 68 65 72 20 | 74 69 6d 65 73 20 69 74 |. Other |times it|
|00000f30| 20 69 73 20 6e 65 63 65 | 73 73 61 72 79 20 74 6f | is nece|ssary to|
|00000f40| 20 72 65 61 64 20 61 6c | 6c 20 74 68 65 0d 20 2a | read al|l the. *|
|00000f50| 20 64 61 74 61 20 69 6d | 6d 65 64 69 61 74 65 6c | data im|mediatel|
|00000f60| 79 20 61 73 20 74 68 65 | 20 73 74 72 65 61 6d 20 |y as the| stream |
|00000f70| 6d 61 79 20 6e 6f 74 20 | 62 65 20 61 76 61 69 6c |may not |be avail|
|00000f80| 61 62 6c 65 20 6c 61 74 | 65 72 2e 0d 20 2a 0d 20 |able lat|er.. *. |
|00000f90| 2a 20 54 68 65 20 74 77 | 6f 20 74 61 67 20 76 61 |* The tw|o tag va|
|00000fa0| 6c 75 65 73 20 74 68 61 | 74 20 61 72 65 20 63 75 |lues tha|t are cu|
|00000fb0| 72 72 65 6e 74 6c 79 20 | 75 73 65 64 20 61 72 65 |rrently |used are|
|00000fc0| 20 6b 4e 65 6f 4f 62 6a | 65 63 74 54 61 67 20 61 | kNeoObj|ectTag a|
|00000fd0| 6e 64 20 6b 4e 65 6f 41 | 6c 6c 54 61 67 2e 0d 20 |nd kNeoA|llTag.. |
|00000fe0| 2a 0d 20 2a 20 54 68 65 | 20 76 61 6c 75 65 20 6b |*. * The| value k|
|00000ff0| 4e 65 6f 4f 62 6a 65 63 | 74 54 61 67 20 6d 65 61 |NeoObjec|tTag mea|
|00001000| 6e 73 20 74 68 61 74 20 | 6f 6e 6c 79 20 74 68 6f |ns that |only tho|
|00001010| 73 65 20 76 61 6c 75 65 | 73 20 6f 66 20 69 6d 6d |se value|s of imm|
|00001020| 65 64 69 61 74 65 20 69 | 6e 74 65 72 65 73 74 0d |ediate i|nterest.|
|00001030| 20 2a 20 6e 65 65 64 20 | 74 6f 20 62 65 20 72 65 | * need |to be re|
|00001040| 61 64 20 66 72 6f 6d 20 | 74 68 65 20 73 74 72 65 |ad from |the stre|
|00001050| 61 6d 2c 20 74 68 6f 75 | 67 68 20 69 6d 70 6c 65 |am, thou|gh imple|
|00001060| 6d 65 6e 74 61 74 69 6f | 6e 73 20 6f 66 20 72 65 |mentatio|ns of re|
|00001070| 61 64 4f 62 6a 65 63 74 | 20 6d 61 79 20 72 65 61 |adObject| may rea|
|00001080| 64 0d 20 2a 20 69 6e 20 | 61 64 64 69 74 69 6f 6e |d. * in |addition|
|00001090| 61 6c 20 64 61 74 61 20 | 6d 65 6d 62 65 72 20 76 |al data |member v|
|000010a0| 61 6c 75 65 73 20 69 66 | 20 74 68 65 79 20 77 69 |alues if| they wi|
|000010b0| 73 68 2e 0d 20 2a 0d 20 | 2a 20 54 68 65 20 76 61 |sh.. *. |* The va|
|000010c0| 6c 75 65 20 6b 4e 65 6f | 41 6c 6c 54 61 67 20 69 |lue kNeo|AllTag i|
|000010d0| 6e 64 69 63 61 74 65 73 | 20 74 68 61 74 20 61 6c |ndicates| that al|
|000010e0| 6c 20 64 61 74 61 20 6d | 65 6d 62 65 72 20 76 61 |l data m|ember va|
|000010f0| 6c 75 65 73 20 66 6f 72 | 20 74 68 69 73 20 63 6c |lues for| this cl|
|00001100| 61 73 73 0d 20 2a 20 73 | 68 6f 75 6c 64 20 62 65 |ass. * s|hould be|
|00001110| 20 72 65 61 64 20 69 6e | 20 74 6f 20 74 68 65 20 | read in| to the |
|00001120| 73 74 72 65 61 6d 2e 0d | 20 2a 2f 0d 23 70 72 61 |stream..| */.#pra|
|00001130| 67 6d 61 20 73 65 67 6d | 65 6e 74 20 4e 65 6f 52 |gma segm|ent NeoR|
|00001140| 65 61 64 0d 76 6f 69 64 | 20 43 4e 61 6d 65 49 6e |ead.void| CNameIn|
|00001150| 64 65 78 3a 3a 72 65 61 | 64 4f 62 6a 65 63 74 28 |dex::rea|dObject(|
|00001160| 43 4e 65 6f 53 74 72 65 | 61 6d 20 2a 61 53 74 72 |CNeoStre|am *aStr|
|00001170| 65 61 6d 2c 20 63 6f 6e | 73 74 20 4e 65 6f 54 61 |eam, con|st NeoTa|
|00001180| 67 20 61 54 61 67 29 0d | 7b 0d 09 73 68 6f 72 74 |g aTag).|{..short|
|00001190| 09 69 6e 64 65 78 3b 0d | 0d 09 4e 65 6f 49 6e 68 |.index;.|..NeoInh|
|000011a0| 65 72 69 74 65 64 3a 3a | 72 65 61 64 4f 62 6a 65 |erited::|readObje|
|000011b0| 63 74 28 61 53 74 72 65 | 61 6d 2c 20 61 54 61 67 |ct(aStre|am, aTag|
|000011c0| 29 3b 0d 0d 09 66 6f 72 | 20 28 69 6e 64 65 78 20 |);...for| (index |
|000011d0| 3d 20 30 3b 20 69 6e 64 | 65 78 20 3c 20 66 43 6f |= 0; ind|ex < fCo|
|000011e0| 75 6e 74 3b 20 69 6e 64 | 65 78 2b 2b 29 20 7b 0d |unt; ind|ex++) {.|
|000011f0| 09 09 66 45 6e 74 72 79 | 5b 69 6e 64 65 78 5d 2e |..fEntry|[index].|
|00001200| 66 49 44 20 3d 20 61 53 | 74 72 65 61 6d 2d 3e 72 |fID = aS|tream->r|
|00001210| 65 61 64 4c 6f 6e 67 28 | 29 3b 0d 09 09 61 53 74 |eadLong(|);...aSt|
|00001220| 72 65 61 6d 2d 3e 72 65 | 61 64 4e 61 74 69 76 65 |ream->re|adNative|
|00001230| 53 74 72 69 6e 67 28 66 | 45 6e 74 72 79 5b 69 6e |String(f|Entry[in|
|00001240| 64 65 78 5d 2e 66 4e 61 | 6d 65 2c 20 73 69 7a 65 |dex].fNa|me, size|
|00001250| 6f 66 28 66 45 6e 74 72 | 79 5b 69 6e 64 65 78 5d |of(fEntr|y[index]|
|00001260| 2e 66 4e 61 6d 65 29 29 | 3b 0d 09 7d 0d 7d 0d 0d |.fName))|;..}.}..|
|00001270| 2f 2a 0d 20 2a 20 54 68 | 65 20 77 72 69 74 65 4f |/*. * Th|e writeO|
|00001280| 62 6a 65 63 74 20 6d 65 | 74 68 6f 64 20 69 73 20 |bject me|thod is |
|00001290| 75 73 65 64 20 74 6f 20 | 77 72 69 74 65 20 74 6f |used to |write to|
|000012a0| 20 74 68 65 20 70 65 72 | 6d 61 6e 65 6e 74 20 64 | the per|manent d|
|000012b0| 61 74 61 20 6d 65 6d 62 | 65 72 73 20 6f 66 20 74 |ata memb|ers of t|
|000012c0| 68 65 0d 20 2a 20 6f 62 | 6a 65 63 74 20 66 72 6f |he. * ob|ject fro|
|000012d0| 6d 20 74 68 65 20 67 69 | 76 65 6e 20 73 74 72 65 |m the gi|ven stre|
|000012e0| 61 6d 2e 20 49 6e 20 6d | 6f 73 74 20 63 61 73 65 |am. In m|ost case|
|000012f0| 73 2c 20 74 68 69 73 20 | 6d 65 74 68 6f 64 20 6f |s, this |method o|
|00001300| 70 65 72 61 74 65 73 20 | 77 69 74 68 6f 75 74 20 |perates |without |
|00001310| 63 6f 6e 63 65 72 6e 0d | 20 2a 20 66 6f 72 20 74 |concern.| * for t|
|00001320| 68 65 20 74 79 70 65 20 | 6f 66 20 73 74 72 65 61 |he type |of strea|
|00001330| 6d 20 74 68 65 20 64 61 | 74 61 20 76 61 6c 75 65 |m the da|ta value|
|00001340| 73 20 61 72 65 20 63 6f | 6d 69 6e 67 20 66 72 6f |s are co|ming fro|
|00001350| 6d 2e 20 41 73 20 61 20 | 72 65 73 75 6c 74 2c 20 |m. As a |result, |
|00001360| 74 68 69 73 20 6d 65 74 | 68 6f 64 0d 20 2a 20 69 |this met|hod. * i|
|00001370| 73 20 63 61 70 61 62 6c | 65 20 6f 66 20 77 72 69 |s capabl|e of wri|
|00001380| 74 69 6e 67 20 74 6f 20 | 73 75 63 68 20 64 69 76 |ting to |such div|
|00001390| 65 72 73 65 20 73 6f 75 | 72 63 65 73 20 61 73 20 |erse sou|rces as |
|000013a0| 74 68 65 20 64 61 74 61 | 20 66 6f 72 6b 20 6f 66 |the data| fork of|
|000013b0| 20 61 20 66 69 6c 65 2c | 20 61 0d 20 2a 20 72 65 | a file,| a. * re|
|000013c0| 73 6f 75 72 63 65 20 66 | 6f 72 6b 2c 20 61 6e 20 |source f|ork, an |
|000013d0| 41 70 70 6c 65 45 76 65 | 6e 74 2c 20 74 68 65 20 |AppleEve|nt, the |
|000013e0| 63 6c 69 70 62 6f 61 72 | 64 2c 20 61 20 6d 65 6d |clipboar|d, a mem|
|000013f0| 6f 72 79 20 62 6c 6f 63 | 6b 2c 20 61 6e 64 20 73 |ory bloc|k, and s|
|00001400| 6f 20 6f 6e 2e 0d 20 2a | 0d 20 2a 20 54 68 65 20 |o on.. *|. * The |
|00001410| 61 54 61 67 20 61 72 67 | 75 6d 65 6e 74 20 69 6e |aTag arg|ument in|
|00001420| 64 69 63 61 74 65 73 20 | 68 6f 77 20 6d 75 63 68 |dicates |how much|
|00001430| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 20 74 6f 20 | informa|tion to |
|00001440| 77 72 69 74 65 20 74 6f | 20 74 68 65 20 73 74 72 |write to| the str|
|00001450| 65 61 6d 2e 0d 20 2a 20 | 49 74 20 69 73 20 73 6f |eam.. * |It is so|
|00001460| 6d 65 74 69 6d 65 73 20 | 73 75 66 66 69 63 69 65 |metimes |sufficie|
|00001470| 6e 74 20 74 6f 20 77 72 | 69 74 65 20 6f 75 74 20 |nt to wr|ite out |
|00001480| 6f 6e 6c 79 20 74 68 6f | 73 65 20 70 61 72 74 73 |only tho|se parts|
|00001490| 20 74 68 61 74 20 61 72 | 65 20 64 69 72 74 79 2e | that ar|e dirty.|
|000014a0| 20 4f 74 68 65 72 0d 20 | 2a 20 74 69 6d 65 73 20 | Other. |* times |
|000014b0| 69 74 20 69 73 20 6e 65 | 63 65 73 73 61 72 79 20 |it is ne|cessary |
|000014c0| 74 6f 20 77 72 69 74 65 | 20 61 6c 6c 20 74 68 65 |to write| all the|
|000014d0| 20 64 61 74 61 2c 20 61 | 73 20 77 68 65 6e 20 64 | data, a|s when d|
|000014e0| 6f 69 6e 67 20 53 61 76 | 65 20 41 73 20 6f 70 65 |oing Sav|e As ope|
|000014f0| 72 61 74 69 6f 6e 0d 20 | 2a 20 6f 72 20 77 68 65 |ration. |* or whe|
|00001500| 6e 20 63 6f 6d 6d 75 6e | 69 63 61 74 69 6e 67 20 |n commun|icating |
|00001510| 61 6e 20 6f 62 6a 65 63 | 74 27 73 20 63 6f 6d 70 |an objec|t's comp|
|00001520| 6c 65 74 65 20 73 74 61 | 74 65 20 61 63 72 6f 73 |lete sta|te acros|
|00001530| 73 20 61 6e 64 20 52 50 | 43 20 63 68 61 6e 6e 65 |s and RP|C channe|
|00001540| 6c 2e 0d 20 2a 0d 20 2a | 20 54 68 65 20 74 77 6f |l.. *. *| The two|
|00001550| 20 74 61 67 20 76 61 6c | 75 65 73 20 74 68 61 74 | tag val|ues that|
|00001560| 20 61 72 65 20 63 75 72 | 72 65 6e 74 6c 79 20 75 | are cur|rently u|
|00001570| 73 65 64 20 61 72 65 20 | 6b 4e 65 6f 4f 62 6a 65 |sed are |kNeoObje|
|00001580| 63 74 54 61 67 20 61 6e | 64 20 6b 4e 65 6f 41 6c |ctTag an|d kNeoAl|
|00001590| 6c 54 61 67 2e 0d 20 2a | 0d 20 2a 20 54 68 65 20 |lTag.. *|. * The |
|000015a0| 76 61 6c 75 65 20 6b 4e | 65 6f 4f 62 6a 65 63 74 |value kN|eoObject|
|000015b0| 54 61 67 20 6d 65 61 6e | 73 20 74 68 61 74 20 6f |Tag mean|s that o|
|000015c0| 6e 6c 79 20 74 68 6f 73 | 65 20 76 61 6c 75 65 73 |nly thos|e values|
|000015d0| 20 6f 66 20 69 6d 6d 65 | 64 69 61 74 65 20 69 6e | of imme|diate in|
|000015e0| 74 65 72 65 73 74 0d 20 | 2a 20 6e 65 65 64 20 74 |terest. |* need t|
|000015f0| 6f 20 62 65 20 77 72 69 | 74 74 65 6e 20 74 6f 20 |o be wri|tten to |
|00001600| 74 68 65 20 73 74 72 65 | 61 6d 2c 20 74 68 6f 75 |the stre|am, thou|
|00001610| 67 68 20 69 6d 70 6c 65 | 6d 65 6e 74 61 74 69 6f |gh imple|mentatio|
|00001620| 6e 73 20 6f 66 20 77 72 | 69 74 65 4f 62 6a 65 63 |ns of wr|iteObjec|
|00001630| 74 20 6d 61 79 0d 20 2a | 20 77 72 69 74 65 20 6f |t may. *| write o|
|00001640| 75 74 20 61 64 64 69 74 | 69 6f 6e 61 6c 20 64 61 |ut addit|ional da|
|00001650| 74 61 20 6d 65 6d 62 65 | 72 20 76 61 6c 75 65 73 |ta membe|r values|
|00001660| 20 69 66 20 74 68 65 79 | 20 77 69 73 68 2e 0d 20 | if they| wish.. |
|00001670| 2a 0d 20 2a 20 54 68 65 | 20 76 61 6c 75 65 20 6b |*. * The| value k|
|00001680| 4e 65 6f 41 6c 6c 54 61 | 67 20 69 6e 64 69 63 61 |NeoAllTa|g indica|
|00001690| 74 65 73 20 74 68 61 74 | 20 61 6c 6c 20 64 61 74 |tes that| all dat|
|000016a0| 61 20 6d 65 6d 62 65 72 | 20 76 61 6c 75 65 73 20 |a member| values |
|000016b0| 66 6f 72 20 74 68 69 73 | 20 63 6c 61 73 73 0d 20 |for this| class. |
|000016c0| 2a 20 73 68 6f 75 6c 64 | 20 62 65 20 77 72 69 74 |* should| be writ|
|000016d0| 65 6e 20 6f 75 74 20 74 | 6f 20 74 68 65 20 73 74 |en out t|o the st|
|000016e0| 72 65 61 6d 2e 0d 20 2a | 2f 0d 23 70 72 61 67 6d |ream.. *|/.#pragm|
|000016f0| 61 20 73 65 67 6d 65 6e | 74 20 4e 65 6f 57 72 69 |a segmen|t NeoWri|
|00001700| 74 65 0d 76 6f 69 64 20 | 43 4e 61 6d 65 49 6e 64 |te.void |CNameInd|
|00001710| 65 78 3a 3a 77 72 69 74 | 65 4f 62 6a 65 63 74 28 |ex::writ|eObject(|
|00001720| 43 4e 65 6f 53 74 72 65 | 61 6d 20 2a 61 53 74 72 |CNeoStre|am *aStr|
|00001730| 65 61 6d 2c 20 63 6f 6e | 73 74 20 4e 65 6f 54 61 |eam, con|st NeoTa|
|00001740| 67 20 61 54 61 67 29 0d | 7b 0d 09 73 68 6f 72 74 |g aTag).|{..short|
|00001750| 09 69 6e 64 65 78 3b 0d | 0d 09 4e 65 6f 49 6e 68 |.index;.|..NeoInh|
|00001760| 65 72 69 74 65 64 3a 3a | 77 72 69 74 65 4f 62 6a |erited::|writeObj|
|00001770| 65 63 74 28 61 53 74 72 | 65 61 6d 2c 20 61 54 61 |ect(aStr|eam, aTa|
|00001780| 67 29 3b 0d 0d 09 66 6f | 72 20 28 69 6e 64 65 78 |g);...fo|r (index|
|00001790| 20 3d 20 30 3b 20 69 6e | 64 65 78 20 3c 20 66 43 | = 0; in|dex < fC|
|000017a0| 6f 75 6e 74 3b 20 69 6e | 64 65 78 2b 2b 29 20 7b |ount; in|dex++) {|
|000017b0| 0d 09 09 61 53 74 72 65 | 61 6d 2d 3e 77 72 69 74 |...aStre|am->writ|
|000017c0| 65 4c 6f 6e 67 28 66 45 | 6e 74 72 79 5b 69 6e 64 |eLong(fE|ntry[ind|
|000017d0| 65 78 5d 2e 66 49 44 29 | 3b 0d 09 09 61 53 74 72 |ex].fID)|;...aStr|
|000017e0| 65 61 6d 2d 3e 77 72 69 | 74 65 4e 61 74 69 76 65 |eam->wri|teNative|
|000017f0| 53 74 72 69 6e 67 28 66 | 45 6e 74 72 79 5b 69 6e |String(f|Entry[in|
|00001800| 64 65 78 5d 2e 66 4e 61 | 6d 65 2c 20 73 69 7a 65 |dex].fNa|me, size|
|00001810| 6f 66 28 66 45 6e 74 72 | 79 5b 69 6e 64 65 78 5d |of(fEntr|y[index]|
|00001820| 2e 66 4e 61 6d 65 29 29 | 3b 0d 09 7d 0d 7d 0d 0d |.fName))|;..}.}..|
|00001830| 2f 2a 20 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/* *****|********|
|00001840| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001850| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001860| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001870| 2a 2a 2a 2a 2a 20 2a 2f | 0d 09 09 09 09 2f 2a 2a |***** */|...../**|
|00001880| 20 4f 62 6a 65 63 74 20 | 4c 69 73 74 20 4d 61 6e | Object |List Man|
|00001890| 61 67 65 6d 65 6e 74 20 | 4d 65 74 68 6f 64 73 20 |agement |Methods |
|000018a0| 2a 2a 2f 0d 2f 2a 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |**/./* *|********|
|000018b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000018c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000018d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000018e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 20 2a 2f 0d 0d 0d 2f |********|* */.../|
|000018f0| 2a 0d 20 2a 20 54 68 69 | 73 20 6d 65 74 68 6f 64 |*. * Thi|s method|
|00001900| 20 72 65 61 64 73 20 69 | 6e 20 74 68 65 20 6f 62 | reads i|n the ob|
|00001910| 6a 65 63 74 20 72 65 66 | 65 72 72 65 64 20 74 6f |ject ref|erred to|
|00001920| 20 62 79 20 74 68 65 20 | 73 70 65 63 69 66 69 65 | by the |specifie|
|00001930| 64 20 65 6e 74 72 79 2e | 20 53 65 63 6f 6e 64 61 |d entry.| Seconda|
|00001940| 72 79 0d 20 2a 20 69 6e | 64 69 63 65 73 20 64 6f |ry. * in|dices do|
|00001950| 20 6e 6f 74 20 72 65 66 | 65 72 20 64 69 72 65 63 | not ref|er direc|
|00001960| 74 6c 79 20 74 6f 20 74 | 68 65 20 6f 62 6a 65 63 |tly to t|he objec|
|00001970| 74 20 69 6e 20 74 68 65 | 20 66 69 6c 65 20 6f 72 |t in the| file or|
|00001980| 20 69 6e 20 6d 65 6d 6f | 72 79 2e 20 49 6e 73 74 | in memo|ry. Inst|
|00001990| 65 61 64 2c 0d 20 2a 20 | 74 68 65 20 73 70 65 63 |ead,. * |the spec|
|000019a0| 69 66 69 65 64 20 65 6e | 74 72 79 20 6f 66 20 74 |ified en|try of t|
|000019b0| 68 69 73 20 69 6e 64 65 | 78 20 63 6f 6e 74 61 69 |his inde|x contai|
|000019c0| 6e 73 20 74 68 65 20 69 | 6e 66 6f 72 6d 61 74 69 |ns the i|nformati|
|000019d0| 6f 6e 20 6e 65 63 65 73 | 73 61 72 79 20 74 6f 0d |on neces|sary to.|
|000019e0| 20 2a 20 6c 6f 63 61 74 | 65 20 74 68 65 20 6f 62 | * locat|e the ob|
|000019f0| 6a 65 63 74 20 75 73 69 | 6e 67 20 74 68 65 20 70 |ject usi|ng the p|
|00001a00| 72 69 6d 61 72 79 20 69 | 6e 64 65 78 2e 0d 20 2a |rimary i|ndex.. *|
|00001a10| 0d 20 2a 20 4e 6f 74 65 | 3a 20 54 68 65 20 67 65 |. * Note|: The ge|
|00001a20| 74 4f 62 6a 65 63 74 20 | 6d 65 74 68 6f 64 20 69 |tObject |method i|
|00001a30| 73 20 6e 6f 74 20 73 75 | 70 70 6f 73 65 64 20 74 |s not su|pposed t|
|00001a40| 6f 20 61 64 64 20 61 20 | 72 65 66 65 72 65 6e 63 |o add a |referenc|
|00001a50| 65 20 74 6f 20 74 68 65 | 20 6f 62 6a 65 63 74 2e |e to the| object.|
|00001a60| 0d 20 2a 20 41 73 20 73 | 75 63 68 2c 20 74 68 65 |. * As s|uch, the|
|00001a70| 20 72 65 66 65 72 65 6e | 63 65 20 61 64 64 65 64 | referen|ce added|
|00001a80| 20 62 79 20 46 69 6e 64 | 42 79 49 44 20 69 73 20 | by Find|ByID is |
|00001a90| 72 65 6d 6f 76 65 64 20 | 62 65 66 6f 72 65 20 70 |removed |before p|
|00001aa0| 61 73 73 69 6e 67 20 74 | 68 65 20 6f 62 6a 65 63 |assing t|he objec|
|00001ab0| 74 0d 20 2a 20 62 61 63 | 6b 20 74 6f 20 6f 75 72 |t. * bac|k to our|
|00001ac0| 20 63 61 6c 6c 65 72 2e | 0d 20 2a 2f 0d 23 70 72 | caller.|. */.#pr|
|00001ad0| 61 67 6d 61 20 73 65 67 | 6d 65 6e 74 20 4e 65 6f |agma seg|ment Neo|
|00001ae0| 53 65 61 72 63 68 0d 43 | 4e 65 6f 50 65 72 73 69 |Search.C|NeoPersi|
|00001af0| 73 74 20 2a 43 4e 61 6d | 65 49 6e 64 65 78 3a 3a |st *CNam|eIndex::|
|00001b00| 67 65 74 4f 62 6a 65 63 | 74 28 63 6f 6e 73 74 20 |getObjec|t(const |
|00001b10| 73 68 6f 72 74 20 61 49 | 6e 64 65 78 29 0d 7b 0d |short aI|ndex).{.|
|00001b20| 09 43 4e 65 6f 50 65 72 | 73 69 73 74 20 2a 09 6f |.CNeoPer|sist *.o|
|00001b30| 62 6a 65 63 74 3b 0d 09 | 43 4e 65 6f 49 44 53 65 |bject;..|CNeoIDSe|
|00001b40| 6c 65 63 74 09 6b 65 79 | 28 66 45 6e 74 72 79 5b |lect.key|(fEntry[|
|00001b50| 61 49 6e 64 65 78 5d 2e | 66 49 44 29 3b 0d 0d 09 |aIndex].|fID);...|
|00001b60| 6f 62 6a 65 63 74 20 3d | 20 28 43 4e 65 6f 50 65 |object =| (CNeoPe|
|00001b70| 72 73 69 73 74 20 2a 29 | 43 4e 65 6f 43 6c 61 73 |rsist *)|CNeoClas|
|00001b80| 73 3a 3a 46 69 6e 64 4f | 62 6a 65 63 74 28 43 4e |s::FindO|bject(CN|
|00001b90| 65 6f 4d 65 74 61 43 6c | 61 73 73 3a 3a 46 4f 62 |eoMetaCl|ass::FOb|
|00001ba0| 6a 43 6c 61 73 73 49 44 | 2c 20 26 6b 65 79 2c 20 |jClassID|, &key, |
|00001bb0| 54 52 55 45 2c 20 6e 69 | 6c 2c 20 6e 69 6c 29 3b |TRUE, ni|l, nil);|
|00001bc0| 0d 09 6f 62 6a 65 63 74 | 2d 3e 75 6e 72 65 66 65 |..object|->unrefe|
|00001bd0| 72 28 29 3b 09 09 09 09 | 2f 2f 20 4f 75 72 20 63 |r();....|// Our c|
|00001be0| 61 6c 6c 65 72 20 77 69 | 6c 6c 20 61 64 64 20 74 |aller wi|ll add t|
|00001bf0| 68 65 20 72 65 66 65 72 | 65 6e 63 65 20 69 66 20 |he refer|ence if |
|00001c00| 69 74 20 77 61 6e 74 73 | 20 74 6f 0d 0d 09 72 65 |it wants| to...re|
|00001c10| 74 75 72 6e 20 6f 62 6a | 65 63 74 3b 0d 7d 0d 0d |turn obj|ect;.}..|
|00001c20| 2f 2a 0d 20 2a 20 54 68 | 69 73 20 6d 65 74 68 6f |/*. * Th|is metho|
|00001c30| 64 20 6c 6f 63 61 74 65 | 73 20 74 68 65 20 6c 65 |d locate|s the le|
|00001c40| 61 66 20 6f 66 20 74 68 | 65 20 69 6e 64 65 78 20 |af of th|e index |
|00001c50| 74 72 65 65 20 69 6e 74 | 6f 20 77 68 69 63 68 20 |tree int|o which |
|00001c60| 74 68 65 20 6f 62 6a 65 | 63 74 0d 20 2a 20 73 68 |the obje|ct. * sh|
|00001c70| 6f 75 6c 64 20 62 65 20 | 61 64 64 65 64 2e 20 54 |ould be |added. T|
|00001c80| 68 65 6e 20 69 74 20 66 | 69 6c 6c 73 20 69 6e 20 |hen it f|ills in |
|00001c90| 74 68 65 20 61 74 74 72 | 69 62 75 74 65 73 20 6f |the attr|ibutes o|
|00001ca0| 66 20 74 68 65 20 6e 65 | 77 20 65 6e 74 72 79 20 |f the ne|w entry |
|00001cb0| 61 6e 64 20 63 61 6c 6c | 73 0d 20 2a 20 69 6e 73 |and call|s. * ins|
|00001cc0| 65 72 74 45 6e 74 72 79 | 28 29 20 74 6f 20 61 64 |ertEntry|() to ad|
|00001cd0| 64 20 69 74 20 69 6e 20 | 74 68 65 20 70 72 6f 70 |d it in |the prop|
|00001ce0| 65 72 20 70 6c 61 63 65 | 20 69 6e 20 74 68 65 20 |er place| in the |
|00001cf0| 6c 69 73 74 2e 0d 20 2a | 2f 0d 23 70 72 61 67 6d |list.. *|/.#pragm|
|00001d00| 61 20 73 65 67 6d 65 6e | 74 20 4e 65 6f 41 64 64 |a segmen|t NeoAdd|
|00001d10| 0d 43 4e 65 6f 4e 6f 64 | 65 20 2a 43 4e 61 6d 65 |.CNeoNod|e *CName|
|00001d20| 49 6e 64 65 78 3a 3a 69 | 6e 73 65 72 74 4f 62 6a |Index::i|nsertObj|
|00001d30| 65 63 74 28 63 6f 6e 73 | 74 20 73 68 6f 72 74 20 |ect(cons|t short |
|00001d40| 61 49 6e 64 65 78 2c 20 | 43 4e 65 6f 50 65 72 73 |aIndex, |CNeoPers|
|00001d50| 69 73 74 20 2a 61 4f 62 | 6a 65 63 74 29 0d 7b 0d |ist *aOb|ject).{.|
|00001d60| 09 4e 65 6f 49 44 09 09 | 09 6f 6c 64 43 6c 61 73 |.NeoID..|.oldClas|
|00001d70| 73 49 44 3b 0d 09 43 4e | 65 6f 4e 6f 64 65 20 2a |sID;..CN|eoNode *|
|00001d80| 09 09 6e 65 77 52 6f 6f | 74 09 09 3d 20 6e 69 6c |..newRoo|t..= nil|
|00001d90| 3b 0d 09 43 50 65 72 73 | 6f 6e 20 2a 09 09 70 65 |;..CPers|on *..pe|
|00001da0| 72 73 6f 6e 09 09 3d 20 | 28 43 50 65 72 73 6f 6e |rson..= |(CPerson|
|00001db0| 20 2a 29 61 4f 62 6a 65 | 63 74 3b 0d 09 43 4e 65 | *)aObje|ct;..CNe|
|00001dc0| 6f 53 74 72 69 6e 67 09 | 09 6e 61 6d 65 3b 0d 09 |oString.|.name;..|
|00001dd0| 4e 61 6d 65 49 6e 64 65 | 78 45 6e 74 72 79 09 6e |NameInde|xEntry.n|
|00001de0| 65 77 45 6e 74 72 79 3b | 0d 0d 09 6e 65 77 45 6e |ewEntry;|...newEn|
|00001df0| 74 72 79 2e 66 49 44 20 | 3d 20 70 65 72 73 6f 6e |try.fID |= person|
|00001e00| 2d 3e 66 49 44 3b 0d 09 | 28 28 43 50 65 72 73 6f |->fID;..|((CPerso|
|00001e10| 6e 20 2a 29 61 4f 62 6a | 65 63 74 29 2d 3e 67 65 |n *)aObj|ect)->ge|
|00001e20| 74 4e 61 6d 65 28 6e 65 | 77 45 6e 74 72 79 2e 66 |tName(ne|wEntry.f|
|00001e30| 4e 61 6d 65 29 3b 0d 0d | 09 6f 6c 64 43 6c 61 73 |Name);..|.oldClas|
|00001e40| 73 49 44 20 3d 20 43 4e | 65 6f 4d 65 74 61 43 6c |sID = CN|eoMetaCl|
|00001e50| 61 73 73 3a 3a 46 53 79 | 73 43 6c 61 73 73 49 44 |ass::FSy|sClassID|
|00001e60| 3b 0d 09 43 4e 65 6f 4d | 65 74 61 43 6c 61 73 73 |;..CNeoM|etaClass|
|00001e70| 3a 3a 46 53 79 73 43 6c | 61 73 73 49 44 20 3d 20 |::FSysCl|assID = |
|00001e80| 6b 4e 61 6d 65 49 6e 64 | 65 78 49 44 3b 0d 0d 09 |kNameInd|exID;...|
|00001e90| 6e 65 77 52 6f 6f 74 20 | 3d 20 69 6e 73 65 72 74 |newRoot |= insert|
|00001ea0| 45 6e 74 72 79 28 61 49 | 6e 64 65 78 2c 20 28 50 |Entry(aI|ndex, (P|
|00001eb0| 74 72 29 26 6e 65 77 45 | 6e 74 72 79 29 3b 0d 23 |tr)&newE|ntry);.#|
|00001ec0| 69 66 64 65 66 20 71 4e | 65 6f 44 65 62 75 67 0d |ifdef qN|eoDebug.|
|00001ed0| 09 69 66 20 28 6e 65 77 | 52 6f 6f 74 29 0d 09 09 |.if (new|Root)...|
|00001ee0| 4e 65 6f 56 65 72 69 66 | 79 4e 6f 64 65 28 6e 65 |NeoVerif|yNode(ne|
|00001ef0| 77 52 6f 6f 74 29 3b 0d | 23 65 6e 64 69 66 0d 0d |wRoot);.|#endif..|
|00001f00| 09 43 4e 65 6f 4d 65 74 | 61 43 6c 61 73 73 3a 3a |.CNeoMet|aClass::|
|00001f10| 46 53 79 73 43 6c 61 73 | 73 49 44 20 3d 20 6f 6c |FSysClas|sID = ol|
|00001f20| 64 43 6c 61 73 73 49 44 | 3b 0d 0d 09 72 65 74 75 |dClassID|;...retu|
|00001f30| 72 6e 20 6e 65 77 52 6f | 6f 74 3b 0d 7d 0d 0d 2f |rn newRo|ot;.}../|
|00001f40| 2a 0d 20 2a 20 54 68 65 | 20 6d 65 74 61 63 6c 61 |*. * The| metacla|
|00001f50| 73 73 20 6f 62 6a 65 63 | 74 20 6f 66 20 61 6c 6c |ss objec|t of all|
|00001f60| 20 70 65 72 73 69 73 74 | 65 6e 74 20 63 6c 61 73 | persist|ent clas|
|00001f70| 73 65 73 20 6e 65 65 64 | 20 74 6f 20 62 65 20 61 |ses need| to be a|
|00001f80| 62 6c 65 20 74 6f 20 64 | 65 74 65 72 6d 69 6e 65 |ble to d|etermine|
|00001f90| 0d 20 2a 20 74 68 65 20 | 70 72 69 6d 61 72 79 20 |. * the |primary |
|00001fa0| 73 65 6c 65 63 74 69 6f | 6e 20 63 72 69 74 65 72 |selectio|n criter|
|00001fb0| 69 61 20 6f 66 20 74 68 | 61 74 20 63 6c 61 73 73 |ia of th|at class|
|00001fc0| 2e 20 54 68 69 73 20 73 | 74 61 74 69 63 20 66 75 |. This s|tatic fu|
|00001fd0| 6e 63 74 69 6f 6e 20 69 | 73 20 63 61 6c 6c 65 64 |nction i|s called|
|00001fe0| 0d 20 2a 20 74 68 72 6f | 75 67 68 20 74 68 65 20 |. * thro|ugh the |
|00001ff0| 69 6e 64 65 78 20 63 6c | 61 73 73 27 73 20 6d 65 |index cl|ass's me|
|00002000| 74 61 63 6c 61 73 73 20 | 6f 62 6a 65 63 74 2e 20 |taclass |object. |
|00002010| 49 74 20 69 73 20 75 73 | 65 64 20 74 6f 3a 20 31 |It is us|ed to: 1|
|00002020| 29 20 77 68 65 74 68 65 | 72 20 74 68 65 0d 20 2a |) whethe|r the. *|
|00002030| 20 69 6e 64 65 78 20 63 | 61 6e 20 70 65 72 66 6f | index c|an perfo|
|00002040| 72 6d 20 61 20 62 69 6e | 61 72 79 20 73 65 61 72 |rm a bin|ary sear|
|00002050| 63 68 20 75 73 69 6e 67 | 20 74 68 65 20 67 69 76 |ch using| the giv|
|00002060| 65 6e 20 73 65 6c 65 63 | 74 20 6b 65 79 2c 20 61 |en selec|t key, a|
|00002070| 6e 64 20 32 29 20 74 6f | 0d 20 2a 20 6f 62 74 61 |nd 2) to|. * obta|
|00002080| 69 6e 20 61 20 73 65 6c | 65 63 74 20 6b 65 79 20 |in a sel|ect key |
|00002090| 66 6f 72 20 6c 6f 63 61 | 74 69 6e 67 20 74 68 65 |for loca|ting the|
|000020a0| 20 70 72 6f 70 65 72 20 | 69 6e 64 65 78 20 65 6e | proper |index en|
|000020b0| 74 72 79 20 66 6f 72 20 | 74 68 65 20 67 69 76 65 |try for |the give|
|000020c0| 6e 0d 20 2a 20 6f 62 6a | 65 63 74 2e 0d 20 2a 2f |n. * obj|ect.. */|
|000020d0| 0d 23 70 72 61 67 6d 61 | 20 73 65 67 6d 65 6e 74 |.#pragma| segment|
|000020e0| 20 4e 65 6f 53 65 61 72 | 63 68 0d 76 6f 69 64 20 | NeoSear|ch.void |
|000020f0| 2a 43 4e 61 6d 65 49 6e | 64 65 78 3a 3a 4b 65 79 |*CNameIn|dex::Key|
|00002100| 4d 61 6e 61 67 65 72 28 | 63 6f 6e 73 74 20 4e 65 |Manager(|const Ne|
|00002110| 6f 4b 65 79 4f 70 20 61 | 4f 70 2c 20 2e 2e 2e 29 |oKeyOp a|Op, ...)|
|00002120| 0d 7b 0d 09 76 61 5f 6c | 69 73 74 09 09 09 61 72 |.{..va_l|ist...ar|
|00002130| 67 70 74 72 3b 09 09 09 | 09 09 2f 2f 20 70 6f 69 |gptr;...|..// poi|
|00002140| 6e 74 65 72 20 74 6f 20 | 61 72 67 75 6d 65 6e 74 |nter to |argument|
|00002150| 20 6c 69 73 74 2e 0d 09 | 4e 65 6f 53 65 6c 65 63 | list...|NeoSelec|
|00002160| 74 54 79 70 65 09 73 65 | 6c 65 63 74 54 79 70 65 |tType.se|lectType|
|00002170| 3b 0d 09 76 6f 69 64 20 | 2a 09 09 09 76 61 6c 75 |;..void |*...valu|
|00002180| 65 09 3d 20 6e 69 6c 3b | 0d 09 43 4e 65 6f 53 65 |e.= nil;|..CNeoSe|
|00002190| 6c 65 63 74 20 2a 09 6b | 65 79 3b 0d 09 43 50 65 |lect *.k|ey;..CPe|
|000021a0| 72 73 6f 6e 20 2a 09 09 | 70 65 72 73 6f 6e 3b 0d |rson *..|person;.|
|000021b0| 09 43 4e 65 6f 53 74 72 | 69 6e 67 09 09 6e 61 6d |.CNeoStr|ing..nam|
|000021c0| 65 3b 0d 0d 09 76 61 5f | 73 74 61 72 74 28 61 72 |e;...va_|start(ar|
|000021d0| 67 70 74 72 2c 20 61 4f | 70 29 3b 0d 09 73 77 69 |gptr, aO|p);..swi|
|000021e0| 74 63 68 20 28 61 4f 70 | 29 20 7b 0d 09 63 61 73 |tch (aOp|) {..cas|
|000021f0| 65 20 6b 4e 65 6f 43 61 | 6e 53 75 70 70 6f 72 74 |e kNeoCa|nSupport|
|00002200| 3a 0d 09 09 6b 65 79 20 | 3d 20 76 61 5f 61 72 67 |:...key |= va_arg|
|00002210| 28 61 72 67 70 74 72 2c | 20 43 4e 65 6f 53 65 6c |(argptr,| CNeoSel|
|00002220| 65 63 74 20 2a 29 3b 0d | 09 09 73 65 6c 65 63 74 |ect *);.|..select|
|00002230| 54 79 70 65 20 3d 20 6b | 65 79 2d 3e 67 65 74 53 |Type = k|ey->getS|
|00002240| 65 6c 65 63 74 54 79 70 | 65 28 29 3b 0d 09 09 69 |electTyp|e();...i|
|00002250| 66 20 28 73 65 6c 65 63 | 74 54 79 70 65 20 3d 3d |f (selec|tType ==|
|00002260| 20 70 4e 65 6f 4e 61 6d | 65 29 0d 09 09 09 76 61 | pNeoNam|e)....va|
|00002270| 6c 75 65 20 3d 20 28 76 | 6f 69 64 20 2a 29 28 75 |lue = (v|oid *)(u|
|00002280| 6e 73 69 67 6e 65 64 20 | 20 63 68 61 72 29 54 52 |nsigned | char)TR|
|00002290| 55 45 3b 0d 23 69 66 64 | 65 66 20 71 4e 65 6f 53 |UE;.#ifd|ef qNeoS|
|000022a0| 68 61 72 65 0d 09 09 65 | 6c 73 65 20 69 66 20 28 |hare...e|lse if (|
|000022b0| 73 65 6c 65 63 74 54 79 | 70 65 20 3d 3d 20 6b 4e |selectTy|pe == kN|
|000022c0| 65 6f 41 45 4b 65 79 53 | 65 6c 65 63 74 20 26 26 |eoAEKeyS|elect &&|
|000022d0| 0d 09 09 09 09 20 28 28 | 43 4e 65 6f 41 45 4b 65 |..... ((|CNeoAEKe|
|000022e0| 79 53 65 6c 65 63 74 20 | 2a 29 6b 65 79 29 2d 3e |ySelect |*)key)->|
|000022f0| 67 65 74 41 45 4b 65 79 | 77 6f 72 64 28 29 20 3d |getAEKey|word() =|
|00002300| 3d 20 70 4e 65 6f 4e 61 | 6d 65 29 0d 09 09 09 76 |= pNeoNa|me)....v|
|00002310| 61 6c 75 65 20 3d 20 28 | 76 6f 69 64 20 2a 29 28 |alue = (|void *)(|
|00002320| 75 6e 73 69 67 6e 65 64 | 20 20 63 68 61 72 29 54 |unsigned| char)T|
|00002330| 52 55 45 3b 0d 23 65 6e | 64 69 66 0d 09 09 65 6c |RUE;.#en|dif...el|
|00002340| 73 65 0d 09 09 09 76 61 | 6c 75 65 20 3d 20 4e 65 |se....va|lue = Ne|
|00002350| 6f 49 6e 68 65 72 69 74 | 65 64 3a 3a 4b 65 79 4d |oInherit|ed::KeyM|
|00002360| 61 6e 61 67 65 72 28 6b | 4e 65 6f 43 61 6e 53 75 |anager(k|NeoCanSu|
|00002370| 70 70 6f 72 74 2c 20 6b | 65 79 2c 20 73 65 6c 65 |pport, k|ey, sele|
|00002380| 63 74 54 79 70 65 29 3b | 0d 09 09 62 72 65 61 6b |ctType);|...break|
|00002390| 3b 0d 0d 09 63 61 73 65 | 20 6b 4e 65 6f 47 65 74 |;...case| kNeoGet|
|000023a0| 4b 65 79 3a 0d 09 09 70 | 65 72 73 6f 6e 20 3d 20 |Key:...p|erson = |
|000023b0| 76 61 5f 61 72 67 28 61 | 72 67 70 74 72 2c 20 43 |va_arg(a|rgptr, C|
|000023c0| 50 65 72 73 6f 6e 20 2a | 29 3b 0d 09 09 70 65 72 |Person *|);...per|
|000023d0| 73 6f 6e 2d 3e 67 65 74 | 4e 61 6d 65 28 6e 61 6d |son->get|Name(nam|
|000023e0| 65 29 3b 0d 09 09 76 61 | 6c 75 65 20 3d 20 28 76 |e);...va|lue = (v|
|000023f0| 6f 69 64 20 2a 29 6e 65 | 77 20 43 4e 65 6f 4e 61 |oid *)ne|w CNeoNa|
|00002400| 6d 65 53 65 6c 65 63 74 | 28 6e 61 6d 65 29 3b 0d |meSelect|(name);.|
|00002410| 09 09 62 72 65 61 6b 3b | 0d 09 7d 0d 09 76 61 5f |..break;|..}..va_|
|00002420| 65 6e 64 28 61 72 67 70 | 74 72 29 3b 0d 0d 09 72 |end(argp|tr);...r|
|00002430| 65 74 75 72 6e 20 76 61 | 6c 75 65 3b 0d 7d 0d 0d |eturn va|lue;.}..|
|00002440| 2f 2a 20 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/* *****|********|
|00002450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002460| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002470| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002480| 2a 2a 2a 2a 2a 20 2a 2f | 0d 09 09 09 09 2f 2a 2a |***** */|...../**|
|00002490| 20 45 6e 74 72 79 20 4d | 61 6e 61 67 65 6d 65 6e | Entry M|anagemen|
|000024a0| 74 20 4d 65 74 68 6f 64 | 73 20 2a 2a 2f 0d 2f 2a |t Method|s **/./*|
|000024b0| 20 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *******|********|
|000024c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024f0| 2a 2a 2a 20 2a 2f 0d 0d | 2f 2a 0d 20 2a 20 54 68 |*** */..|/*. * Th|
|00002500| 69 73 20 66 75 6e 63 74 | 69 6f 6e 20 70 72 6f 76 |is funct|ion prov|
|00002510| 69 64 65 73 20 61 20 6d | 65 63 68 61 6e 69 73 6d |ides a m|echanism|
|00002520| 20 66 6f 72 20 64 65 74 | 65 72 6d 69 6e 69 6e 67 | for det|ermining|
|00002530| 20 74 68 65 20 73 69 7a | 65 20 6f 66 20 65 6e 74 | the siz|e of ent|
|00002540| 72 69 65 73 20 66 6f 72 | 0d 20 2a 20 61 20 70 61 |ries for|. * a pa|
|00002550| 72 74 69 63 75 6c 61 72 | 20 6e 6f 64 65 2e 0d 20 |rticular| node.. |
|00002560| 2a 2f 0d 23 70 72 61 67 | 6d 61 20 73 65 67 6d 65 |*/.#prag|ma segme|
|00002570| 6e 74 20 4e 65 6f 43 68 | 61 6e 67 65 0d 73 68 6f |nt NeoCh|ange.sho|
|00002580| 72 74 20 43 4e 61 6d 65 | 49 6e 64 65 78 3a 3a 67 |rt CName|Index::g|
|00002590| 65 74 45 6e 74 72 79 53 | 69 7a 65 28 76 6f 69 64 |etEntryS|ize(void|
|000025a0| 29 20 63 6f 6e 73 74 0d | 7b 0d 09 72 65 74 75 72 |) const.|{..retur|
|000025b0| 6e 20 73 69 7a 65 6f 66 | 28 4e 61 6d 65 49 6e 64 |n sizeof|(NameInd|
|000025c0| 65 78 45 6e 74 72 79 29 | 3b 0d 7d 0d 0d 23 69 66 |exEntry)|;.}..#if|
|000025d0| 64 65 66 20 71 4e 65 6f | 44 65 62 75 67 0d 2f 2a |def qNeo|Debug./*|
|000025e0| 20 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *******|********|
|000025f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002600| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002610| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002620| 2a 2a 2a 20 2a 2f 0d 09 | 09 09 09 09 09 2f 2a 2a |*** */..|...../**|
|00002630| 20 44 65 62 75 67 67 69 | 6e 67 20 4d 65 74 68 6f | Debuggi|ng Metho|
|00002640| 64 73 20 2a 2a 2f 0d 2f | 2a 20 2a 2a 2a 2a 2a 2a |ds **/./|* ******|
|00002650| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002660| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002670| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002680| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 20 2a 2f 0d |********|**** */.|
|00002690| 0d 2f 2a 0d 20 2a 20 41 | 6c 6c 20 73 75 62 63 6c |./*. * A|ll subcl|
|000026a0| 61 73 73 65 73 20 6f 66 | 20 43 4e 65 6f 50 65 72 |asses of| CNeoPer|
|000026b0| 73 69 73 74 20 73 68 6f | 75 6c 64 20 6f 76 65 72 |sist sho|uld over|
|000026c0| 72 69 64 65 20 74 68 65 | 20 76 65 72 69 66 79 20 |ride the| verify |
|000026d0| 6d 65 74 68 6f 64 20 74 | 6f 0d 20 2a 20 70 65 72 |method t|o. * per|
|000026e0| 66 6f 72 6d 20 61 20 63 | 6f 6e 73 69 73 74 65 6e |form a c|onsisten|
|000026f0| 63 79 20 63 68 65 63 6b | 20 6f 6e 20 6f 62 6a 65 |cy check| on obje|
|00002700| 63 74 73 2e 20 54 68 69 | 73 20 6d 65 74 68 6f 64 |cts. Thi|s method|
|00002710| 20 73 68 6f 75 6c 64 20 | 6d 61 6b 65 20 61 73 0d | should |make as.|
|00002720| 20 2a 20 6d 61 6e 79 20 | 67 65 6e 65 72 61 6c 20 | * many |general |
|00002730| 61 73 73 65 72 74 69 6f | 6e 73 20 61 73 20 70 6f |assertio|ns as po|
|00002740| 73 73 69 62 6c 65 2e 0d | 20 2a 0d 20 2a 20 43 4e |ssible..| *. * CN|
|00002750| 65 6f 50 61 72 65 6e 74 | 4e 4e 61 6d 65 49 6e 64 |eoParent|NNameInd|
|00002760| 65 78 27 73 20 76 65 72 | 69 66 79 20 63 68 65 63 |ex's ver|ify chec|
|00002770| 6b 73 20 74 68 61 74 20 | 74 68 65 20 65 6e 74 72 |ks that |the entr|
|00002780| 69 65 73 20 61 72 65 20 | 73 6f 72 74 65 64 0d 20 |ies are |sorted. |
|00002790| 2a 20 69 6e 20 61 73 63 | 65 6e 64 69 6e 67 20 6f |* in asc|ending o|
|000027a0| 72 64 65 72 20 62 79 20 | 74 68 65 20 66 69 65 6c |rder by |the fiel|
|000027b0| 64 73 20 66 50 61 72 65 | 6e 74 49 44 20 61 6e 64 |ds fPare|ntID and|
|000027c0| 20 66 4e 61 6d 65 2e 0d | 20 2a 20 61 56 61 6c 75 | fName..| * aValu|
|000027d0| 65 20 69 73 20 61 73 73 | 75 6d 65 64 20 74 6f 20 |e is ass|umed to |
|000027e0| 62 65 20 61 20 70 6f 69 | 6e 74 65 72 20 74 6f 20 |be a poi|nter to |
|000027f0| 74 68 65 20 6c 61 73 74 | 20 65 6e 74 72 79 20 69 |the last| entry i|
|00002800| 6e 20 74 68 65 20 70 72 | 65 76 69 6f 75 73 0d 20 |n the pr|evious. |
|00002810| 2a 20 73 69 62 6c 69 6e | 67 20 6e 6f 64 65 2e 0d |* siblin|g node..|
|00002820| 20 2a 20 54 68 65 20 72 | 65 74 75 72 6e 20 76 61 | * The r|eturn va|
|00002830| 6c 75 65 20 69 73 20 61 | 20 70 6f 69 6e 74 65 72 |lue is a| pointer|
|00002840| 20 74 6f 20 74 68 65 20 | 6c 61 73 74 20 65 6e 74 | to the |last ent|
|00002850| 72 79 20 69 6e 20 74 68 | 69 73 20 6e 6f 64 65 2e |ry in th|is node.|
|00002860| 0d 20 2a 2f 0d 63 6f 6e | 73 74 20 76 6f 69 64 20 |. */.con|st void |
|00002870| 2a 43 4e 61 6d 65 49 6e | 64 65 78 3a 3a 76 65 72 |*CNameIn|dex::ver|
|00002880| 69 66 79 28 63 6f 6e 73 | 74 20 76 6f 69 64 20 2a |ify(cons|t void *|
|00002890| 61 56 61 6c 75 65 29 20 | 63 6f 6e 73 74 0d 7b 0d |aValue) |const.{.|
|000028a0| 09 73 68 6f 72 74 09 09 | 09 09 09 69 6e 64 65 78 |.short..|...index|
|000028b0| 3b 0d 09 63 6f 6e 73 74 | 20 4e 61 6d 65 49 6e 64 |;..const| NameInd|
|000028c0| 65 78 45 6e 74 72 79 20 | 2a 09 65 6e 74 72 79 09 |exEntry |*.entry.|
|000028d0| 3d 20 28 4e 61 6d 65 49 | 6e 64 65 78 45 6e 74 72 |= (NameI|ndexEntr|
|000028e0| 79 20 2a 29 61 56 61 6c | 75 65 3b 0d 0d 09 66 6f |y *)aVal|ue;...fo|
|000028f0| 72 20 28 69 6e 64 65 78 | 20 3d 20 30 3b 20 69 6e |r (index| = 0; in|
|00002900| 64 65 78 20 3c 20 66 43 | 6f 75 6e 74 3b 20 69 6e |dex < fC|ount; in|
|00002910| 64 65 78 2b 2b 29 20 7b | 0d 09 09 69 66 20 28 65 |dex++) {|...if (e|
|00002920| 6e 74 72 79 29 0d 09 09 | 09 4e 65 6f 41 73 73 65 |ntry)...|.NeoAsse|
|00002930| 72 74 28 65 6e 74 72 79 | 2d 3e 66 4e 61 6d 65 20 |rt(entry|->fName |
|00002940| 3c 3d 20 66 45 6e 74 72 | 79 5b 69 6e 64 65 78 5d |<= fEntr|y[index]|
|00002950| 2e 66 4e 61 6d 65 29 3b | 0d 09 09 65 6e 74 72 79 |.fName);|...entry|
|00002960| 20 3d 20 26 66 45 6e 74 | 72 79 5b 69 6e 64 65 78 | = &fEnt|ry[index|
|00002970| 5d 3b 0d 09 7d 0d 0d 09 | 2f 2f 20 43 4e 65 6f 4e |];..}...|// CNeoN|
|00002980| 6f 64 65 3a 3a 76 65 72 | 69 66 79 20 61 73 73 75 |ode::ver|ify assu|
|00002990| 6d 65 73 20 70 61 72 61 | 6d 65 74 65 72 20 74 6f |mes para|meter to|
|000029a0| 20 62 65 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | be the |current |
|000029b0| 73 69 7a 65 20 6f 66 20 | 74 68 65 20 64 61 74 61 |size of |the data|
|000029c0| 62 61 73 65 0d 09 4e 65 | 6f 49 6e 68 65 72 69 74 |base..Ne|oInherit|
|000029d0| 65 64 3a 3a 76 65 72 69 | 66 79 28 6e 69 6c 29 3b |ed::veri|fy(nil);|
|000029e0| 0d 0d 09 72 65 74 75 72 | 6e 20 65 6e 74 72 79 3b |...retur|n entry;|
|000029f0| 0d 7d 0d 23 65 6e 64 69 | 66 0d 0d 00 00 00 00 00 |.}.#endi|f.......|
|00002a00| 00 00 01 00 00 00 01 a8 | 00 00 00 a8 00 00 00 46 |........|.......F|
|00002a10| 72 69 61 62 6c 65 73 20 | 2a 2a 2f 0d 09 75 6e 73 |riables |**/..uns|
|00002a20| 69 67 6e 65 64 20 63 68 | 61 72 09 09 66 46 69 6c |igned ch|ar..fFil|
|00002a30| 0d 43 4e 61 6d 65 49 6e | 64 65 78 2e 63 70 02 00 |.CNameIn|dex.cp..|
|00002a40| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 3c 00 00 |..TEXTMM|CC...<..|
|00002a50| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 3c 00 00 |..TEXTMM|CC...<..|
|00002a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002a70| 00 00 a5 96 f9 0f 00 00 | 29 7b 00 00 01 ee 6c 61 |........|){....la|
|00002a80| 73 73 3b 09 09 09 2f 2f | 20 63 6c 61 73 73 20 6f |ss;...//| class o|
|00002a90| 66 20 6d 61 72 6b 2c 20 | 6f 72 20 6e 75 6c 6c 0d |f mark, |or null.|
|00002aa0| 0d 09 09 09 09 09 09 2f | 2a 2a 20 41 63 63 65 73 |......./|** Acces|
|00002ab0| 73 69 6e 67 20 2a 2a 2f | 0d 09 76 6f 69 64 09 09 |sing **/|..void..|
|00002ac0| 09 09 73 65 74 43 6c 61 | 73 73 43 6f 75 6e 74 28 |..setCla|ssCount(|
|00002ad0| 6c 6f 6e 67 20 61 43 6f | 75 6e 74 29 3b 09 2f 2f |long aCo|unt);.//|
|00002ae0| 20 73 65 74 20 68 6f 77 | 20 6d 61 6e 79 20 63 6c | set how| many cl|
|00002af0| 61 73 73 65 73 20 69 6e | 20 74 68 65 20 63 6c 61 |asses in| the cla|
|00002b00| 00 00 00 58 00 03 00 1a | 00 00 25 4b 01 33 00 00 |...X....|..%K.3..|
|00002b10| 00 00 10 08 0b 73 65 6c | 65 63 74 54 79 70 65 20 |.....sel|ectType |
|00002b20| 00 18 00 00 25 4b 01 33 | 01 d8 11 d4 10 08 09 70 |....%K.3|.......p|
|00002b30| 4e 65 6f 4e 61 6d 65 20 | 00 24 00 00 08 8d 00 54 |NeoName |.$.....T|
|00002b40| 01 d8 11 b4 00 00 15 2a | 28 43 4e 65 6f 53 74 72 |.......*|(CNeoStr|
|00002b50| 69 6e 67 20 2a 29 61 56 | 61 6c 75 65 00 00 00 48 |ing *)aV|alue...H|
|00002b60| 00 09 4d 6f 6e 61 63 6f | 00 00 00 00 00 00 00 00 |..Monaco|........|
|00002b70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002b80| 00 00 00 03 00 04 00 28 | 00 0a 01 c2 02 80 00 28 |.......(|.......(|
|00002b90| 00 0a 01 c2 02 80 aa 88 | fc c1 00 00 22 e7 00 00 |........|...."...|
|00002ba0| 22 f5 00 00 22 14 01 00 | 00 00 01 00 00 00 01 a8 |"..."...|........|
|00002bb0| 00 00 00 a8 00 00 00 46 | 01 9e 95 c8 33 c8 00 00 |.......F|....3...|
|00002bc0| 00 1c 00 46 00 01 44 54 | 56 55 00 00 00 12 4d 50 |...F..DT|VU....MP|
|00002bd0| 53 52 00 00 00 1e 7c 63 | ff ff 00 00 00 00 00 00 |SR....|c|........|
|00002be0| 00 00 03 ed ff ff 00 00 | 00 5c 00 00 00 00 00 00 |........|.\......|
|00002bf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+